Skip to contentSkip to conversation

loopback_virtio_user_server_mode_cbdma: testpmd can't loop packets after start dpdk-pdump app Immediately

Bug 1181 [email protected] 1 participant 2 messages Mar 14, 2023 – Mar 20, 2023

lore
Share & tools
lore

[email protected]

author Acked-by Ferruh Yigit
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1181

            Bug ID: 1181
           Summary: [DPDK-23.03]loopback_virtio_user_server_mode_cbdma:
                    testpmd can't loop packets after start dpdk-pdump app
                    Immediately
           Product: DPDK
           Version: 22.03
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: testpmd
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

[Environment]
DPDK version: Use make showversion or for a non-released version: git remote -v && git show-ref --heads
23.03.0-rc2
Other software versions: N/A
OS: Ubuntu 22.04.1 LTS/Linux 5.15.45-051545-generic
Compiler: gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) Hardware platform: Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz NIC hardware: N/A
NIC firmware: N/A

[Test Setup]
Steps to reproduce
List the steps to reproduce the issue.

1.Bind 1 CBDMA channel to vfio-pci, then start vhost-user as back-end:

dpdk-devbind.py -b vfio-pci 0000:80:04.0

x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 28-36 -n 4 -a 0000:80:04.0
--file-prefix=vhost \--vdev
'eth_vhost0,iface=vhost-net0,queues=8,client=1,\dmas=[txq0@0000:80:04.0;txq1@0000:80:04.0;txq2@0000:80:04.0;txq3@0000:80:04.0;txq4@0000:80:04.0;txq5@0000:80:04.0;rxq2@0000:80:04.0;rxq3@0000:80:04.0;rxq4@0000:80:04.0;rxq5@0000:80:04.0;rxq6@0000:80:04.0;rxq7@0000:80:04.0]'--iova=va -- -i --nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024

2.Start virtio-user as front-end:

x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 38-42 -n 4
--file-prefix=virtio-user0 --no-pci \--vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 \-- -i --nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024
testpmd>set fwd csum
testpmd>start

3.Start dpdk-pdump to capture packets:

x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio-user0 -- \
--pdump 'device_id=net_virtio_user0,queue=0,rx-dev=/root/dpdk/pdump-rx-q0.pcap,mbuf-size=8000' --pdump \
'device_id=net_virtio_user0,queue=1,rx-dev=/root/dpdk/pdump-rx-q1.pcap,mbuf-size=8000'

4.Set forwarding mode and send packets from vhost-user(execute this step must immediately, we use the automation script to do, it can be reproduced, and if I add time.sleep(1) before this step, it works well):

testpmd>set fwd mac
testpmd>set txpkts 64,64,64,2000,2000,2000
testpmd>set burst 1
testpmd>start tx_first 1

5.Execute the following command to check the front-end can receive the packets:

testpmd>show port stats 0

Show the output from the previous commands.

testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 0 RX-missed: 0 RX-bytes: 0
RX-errors: 0
RX-nombuf: 0
TX-packets: 0 TX-errors: 0 TX-bytes: 0

Throughput (since last show)

  Rx-pps:            0          Rx-bps:            0
  Tx-pps:            0          Tx-bps:            0

############################################################################

testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 0 RX-missed: 0 RX-bytes: 0
RX-errors: 0
RX-nombuf: 0
TX-packets: 0 TX-errors: 0 TX-bytes: 0

Throughput (since last show)

  Rx-pps:            0          Rx-bps:            0
  Tx-pps:            0          Tx-bps:            0

############################################################################

[Expected Result
Explain what is the expected result in text or as an example output:

Packets can loop in 2 testpmds.

testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 46956447 RX-missed: 0 RX-bytes: 290754319824
RX-errors: 0
RX-nombuf: 0
TX-packets: 46956447 TX-errors: 0 TX-bytes: 290754319824

Throughput (since last show)

  Rx-pps:       394554          Rx-bps:  19544669232
  Tx-pps:       394554          Tx-bps:  19544669232

############################################################################

testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 47551390 RX-missed: 0 RX-bytes: 294438206880
RX-errors: 0
RX-nombuf: 0
TX-packets: 47551390 TX-errors: 0 TX-bytes: 294438206880

Throughput (since last show)

  Rx-pps:       395181          Rx-bps:  19575708200
  Tx-pps:       395181          Tx-bps:  19575708200

############################################################################
Regression
Is this issue a regression: (Y/N) Y

Version the regression was introduced: Specify git id if known.

0fd1386c30c3ad9365d7fdd2829bf7cb2e1b9dff is the first bad commit commit 0fd1386c30c3ad9365d7fdd2829bf7cb2e1b9dff

Author: Stephen Hemminger <[email protected]>
Date:   Fri Feb 3 11:14:09 2023 -0800

app/testpmd: cleanup cleanly from signal

Do a clean shutdown of testpmd when a signal is received; instead of having testpmd kill itself. This fixes the problem where a signal could be received in the middle of a PMD and then the signal handler would call PMD's close routine leading to locking problems.

The cmdline structure no longer needs to be global it can just be local to the prompt() function.

An added benefit is it gets rid of some Windows specific code.

Fixes d9a191a00e81 ("app/testpmd: fix quitting in container")
app/test-pmd/cmdline.c | 29 ++++++++-----------
app/test-pmd/testpmd.c | 77 +++++++++++++++++++++++---------------------------
app/test-pmd/testpmd.h |  1 +
3 files changed, 48 insertions, 59 deletions
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.
author Acked-by Olivier Matz
#1 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1181

lingwei ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------

         Resolution|---                         |FIXED
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #3 from lingwei ([email protected]) --- The patch has been merged, and verified PASSED.

OS: Ubuntu 22.04.1 LTS/Linux 5.15.45-051545-generic

commit f1d0993e034e39968a2c80a8561b46c260c27487 (HEAD -> main, origin/main, origin/HEAD)

Author: Stephen Hemminger <[email protected]>
Date:   Fri Mar 17 09:59:41 2023 -0700

app/testpmd: fix interactive mode on Windows

The cmdline_poll() function is broken and was not fully tested, go back to using cmdline_interact().

Instead, use sigaction() to cancel read character on Unix OS's and a new helper to cancel I/O on Windows.

Bugzilla ID: 1180

Fixes 0fd1386c30c3 ("app/testpmd: cleanup cleanly from signal")
Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.